/**
 * 
 */
package systole.persistence.brokersInterface;

import java.util.List;

import systole.domain.clinicalInformation.Pathology;
import systole.exceptions.ExceptionDAO;

/**
 * @author jmj
 *
 */
public interface PathologyBroker {

    /**
     * @param pathology
     * @throws ExceptionDAO
     */
    public void insert(Pathology pathology) throws ExceptionDAO;

    /**
     * @param pathology
     * @throws ExceptionDAO
     */
    public void update(Pathology pathology) throws ExceptionDAO;

    /**
     * @return list of pathology.
     * @throws ExceptionDAO
     */
    public List<Pathology> getAllPathologies() throws ExceptionDAO;

    /**
     *
     * @param name
     * @param id 
     * @return pathology by name
     * @throws ExceptionDAO
     */
    public boolean existPathologyByName(String name, Integer id) throws ExceptionDAO;

    /**
     *
     * @param initials 
     * @param id 
     * @return pathology by initials
     * @throws ExceptionDAO
     */
    public boolean existPathologyByInitials(String initials, Integer id) throws ExceptionDAO;

    /**
     * 
     * @param name
     * @return
     * @throws ExceptionDAO
     */
    public Pathology getPathologyByName(String name)throws ExceptionDAO ;

    /**
     * 
     * @param initials
     * @return
     * @throws ExceptionDAO
     */
    public Pathology getPathologyByInitials(String initials)throws ExceptionDAO ;
}
